/**
 */
package org.mro.grib.model.files.secondEdition.grids.impl;

import java.nio.ByteBuffer;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

import org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate390;
import org.mro.grib.model.files.secondEdition.grids.GridsPackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Grid Definition Template390</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getNumberOfPointsAlongXAxis <em>Number Of Points Along XAxis</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getNumberOfPointsAlongYAxis <em>Number Of Points Along YAxis</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getLatitudeOfSubSatellitePoint <em>Latitude Of Sub Satellite Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getLongitudeOfSubSatellitePoint <em>Longitude Of Sub Satellite Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getResolutionAndComponentFlags <em>Resolution And Component Flags</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getApparentDiameterOfEarthInXDirection <em>Apparent Diameter Of Earth In XDirection</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getApparentDiameterOfEarthInYDirection <em>Apparent Diameter Of Earth In YDirection</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getXCoordinateOfSubSatellitePoint <em>XCoordinate Of Sub Satellite Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getYCoordinateOfSubSatellitePoint <em>YCoordinate Of Sub Satellite Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getScanningMode <em>Scanning Mode</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getOrientationOfTheGrid <em>Orientation Of The Grid</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getAltitudeOfTheCameraFromTheEarthCentre <em>Altitude Of The Camera From The Earth Centre</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getXCoordinateOfOriginOfSectorImage <em>XCoordinate Of Origin Of Sector Image</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate390Impl#getYCoordinateOfOriginOfSectorImage <em>YCoordinate Of Origin Of Sector Image</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class GridDefinitionTemplate390Impl extends EarthShapeGridDefinitionImpl implements GridDefinitionTemplate390 {
	/**
	 * The default value of the '{@link #getNumberOfPointsAlongXAxis() <em>Number Of Points Along XAxis</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongXAxis()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMBER_OF_POINTS_ALONG_XAXIS_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumberOfPointsAlongXAxis() <em>Number Of Points Along XAxis</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongXAxis()
	 * @generated
	 * @ordered
	 */
	protected int numberOfPointsAlongXAxis = NUMBER_OF_POINTS_ALONG_XAXIS_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfPointsAlongYAxis() <em>Number Of Points Along YAxis</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongYAxis()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMBER_OF_POINTS_ALONG_YAXIS_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumberOfPointsAlongYAxis() <em>Number Of Points Along YAxis</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongYAxis()
	 * @generated
	 * @ordered
	 */
	protected int numberOfPointsAlongYAxis = NUMBER_OF_POINTS_ALONG_YAXIS_EDEFAULT;

	/**
	 * The default value of the '{@link #getLatitudeOfSubSatellitePoint() <em>Latitude Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLatitudeOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected static final int LATITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getLatitudeOfSubSatellitePoint() <em>Latitude Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLatitudeOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected int latitudeOfSubSatellitePoint = LATITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getLongitudeOfSubSatellitePoint() <em>Longitude Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLongitudeOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected static final int LONGITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getLongitudeOfSubSatellitePoint() <em>Longitude Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLongitudeOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected int longitudeOfSubSatellitePoint = LONGITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getResolutionAndComponentFlags() <em>Resolution And Component Flags</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getResolutionAndComponentFlags()
	 * @generated
	 * @ordered
	 */
	protected static final byte RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getResolutionAndComponentFlags() <em>Resolution And Component Flags</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getResolutionAndComponentFlags()
	 * @generated
	 * @ordered
	 */
	protected byte resolutionAndComponentFlags = RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT;

	/**
	 * The default value of the '{@link #getApparentDiameterOfEarthInXDirection() <em>Apparent Diameter Of Earth In XDirection</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getApparentDiameterOfEarthInXDirection()
	 * @generated
	 * @ordered
	 */
	protected static final int APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getApparentDiameterOfEarthInXDirection() <em>Apparent Diameter Of Earth In XDirection</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getApparentDiameterOfEarthInXDirection()
	 * @generated
	 * @ordered
	 */
	protected int apparentDiameterOfEarthInXDirection = APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION_EDEFAULT;

	/**
	 * The default value of the '{@link #getApparentDiameterOfEarthInYDirection() <em>Apparent Diameter Of Earth In YDirection</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getApparentDiameterOfEarthInYDirection()
	 * @generated
	 * @ordered
	 */
	protected static final int APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getApparentDiameterOfEarthInYDirection() <em>Apparent Diameter Of Earth In YDirection</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getApparentDiameterOfEarthInYDirection()
	 * @generated
	 * @ordered
	 */
	protected int apparentDiameterOfEarthInYDirection = APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION_EDEFAULT;

	/**
	 * The default value of the '{@link #getXCoordinateOfSubSatellitePoint() <em>XCoordinate Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXCoordinateOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected static final int XCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getXCoordinateOfSubSatellitePoint() <em>XCoordinate Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXCoordinateOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected int xCoordinateOfSubSatellitePoint = XCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getYCoordinateOfSubSatellitePoint() <em>YCoordinate Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getYCoordinateOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected static final int YCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getYCoordinateOfSubSatellitePoint() <em>YCoordinate Of Sub Satellite Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getYCoordinateOfSubSatellitePoint()
	 * @generated
	 * @ordered
	 */
	protected int yCoordinateOfSubSatellitePoint = YCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getScanningMode() <em>Scanning Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScanningMode()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCANNING_MODE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScanningMode() <em>Scanning Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScanningMode()
	 * @generated
	 * @ordered
	 */
	protected byte scanningMode = SCANNING_MODE_EDEFAULT;

	/**
	 * The default value of the '{@link #getOrientationOfTheGrid() <em>Orientation Of The Grid</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getOrientationOfTheGrid()
	 * @generated
	 * @ordered
	 */
	protected static final int ORIENTATION_OF_THE_GRID_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getOrientationOfTheGrid() <em>Orientation Of The Grid</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getOrientationOfTheGrid()
	 * @generated
	 * @ordered
	 */
	protected int orientationOfTheGrid = ORIENTATION_OF_THE_GRID_EDEFAULT;

	/**
	 * The default value of the '{@link #getAltitudeOfTheCameraFromTheEarthCentre() <em>Altitude Of The Camera From The Earth Centre</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAltitudeOfTheCameraFromTheEarthCentre()
	 * @generated
	 * @ordered
	 */
	protected static final int ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getAltitudeOfTheCameraFromTheEarthCentre() <em>Altitude Of The Camera From The Earth Centre</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getAltitudeOfTheCameraFromTheEarthCentre()
	 * @generated
	 * @ordered
	 */
	protected int altitudeOfTheCameraFromTheEarthCentre = ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE_EDEFAULT;

	/**
	 * The default value of the '{@link #getXCoordinateOfOriginOfSectorImage() <em>XCoordinate Of Origin Of Sector Image</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXCoordinateOfOriginOfSectorImage()
	 * @generated
	 * @ordered
	 */
	protected static final int XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getXCoordinateOfOriginOfSectorImage() <em>XCoordinate Of Origin Of Sector Image</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXCoordinateOfOriginOfSectorImage()
	 * @generated
	 * @ordered
	 */
	protected int xCoordinateOfOriginOfSectorImage = XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT;

	/**
	 * The default value of the '{@link #getYCoordinateOfOriginOfSectorImage() <em>YCoordinate Of Origin Of Sector Image</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getYCoordinateOfOriginOfSectorImage()
	 * @generated
	 * @ordered
	 */
	protected static final int YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getYCoordinateOfOriginOfSectorImage() <em>YCoordinate Of Origin Of Sector Image</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getYCoordinateOfOriginOfSectorImage()
	 * @generated
	 * @ordered
	 */
	protected int yCoordinateOfOriginOfSectorImage = YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GridDefinitionTemplate390Impl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return GridsPackage.Literals.GRID_DEFINITION_TEMPLATE390;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumberOfPointsAlongXAxis() {
		return numberOfPointsAlongXAxis;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfPointsAlongXAxis(int newNumberOfPointsAlongXAxis) {
		int oldNumberOfPointsAlongXAxis = numberOfPointsAlongXAxis;
		numberOfPointsAlongXAxis = newNumberOfPointsAlongXAxis;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_XAXIS, oldNumberOfPointsAlongXAxis, numberOfPointsAlongXAxis));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumberOfPointsAlongYAxis() {
		return numberOfPointsAlongYAxis;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfPointsAlongYAxis(int newNumberOfPointsAlongYAxis) {
		int oldNumberOfPointsAlongYAxis = numberOfPointsAlongYAxis;
		numberOfPointsAlongYAxis = newNumberOfPointsAlongYAxis;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_YAXIS, oldNumberOfPointsAlongYAxis, numberOfPointsAlongYAxis));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getLatitudeOfSubSatellitePoint() {
		return latitudeOfSubSatellitePoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLatitudeOfSubSatellitePoint(int newLatitudeOfSubSatellitePoint) {
		int oldLatitudeOfSubSatellitePoint = latitudeOfSubSatellitePoint;
		latitudeOfSubSatellitePoint = newLatitudeOfSubSatellitePoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__LATITUDE_OF_SUB_SATELLITE_POINT, oldLatitudeOfSubSatellitePoint, latitudeOfSubSatellitePoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getLongitudeOfSubSatellitePoint() {
		return longitudeOfSubSatellitePoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLongitudeOfSubSatellitePoint(int newLongitudeOfSubSatellitePoint) {
		int oldLongitudeOfSubSatellitePoint = longitudeOfSubSatellitePoint;
		longitudeOfSubSatellitePoint = newLongitudeOfSubSatellitePoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__LONGITUDE_OF_SUB_SATELLITE_POINT, oldLongitudeOfSubSatellitePoint, longitudeOfSubSatellitePoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getResolutionAndComponentFlags() {
		return resolutionAndComponentFlags;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setResolutionAndComponentFlags(byte newResolutionAndComponentFlags) {
		byte oldResolutionAndComponentFlags = resolutionAndComponentFlags;
		resolutionAndComponentFlags = newResolutionAndComponentFlags;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__RESOLUTION_AND_COMPONENT_FLAGS, oldResolutionAndComponentFlags, resolutionAndComponentFlags));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getApparentDiameterOfEarthInXDirection() {
		return apparentDiameterOfEarthInXDirection;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setApparentDiameterOfEarthInXDirection(int newApparentDiameterOfEarthInXDirection) {
		int oldApparentDiameterOfEarthInXDirection = apparentDiameterOfEarthInXDirection;
		apparentDiameterOfEarthInXDirection = newApparentDiameterOfEarthInXDirection;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION, oldApparentDiameterOfEarthInXDirection, apparentDiameterOfEarthInXDirection));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getApparentDiameterOfEarthInYDirection() {
		return apparentDiameterOfEarthInYDirection;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setApparentDiameterOfEarthInYDirection(int newApparentDiameterOfEarthInYDirection) {
		int oldApparentDiameterOfEarthInYDirection = apparentDiameterOfEarthInYDirection;
		apparentDiameterOfEarthInYDirection = newApparentDiameterOfEarthInYDirection;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION, oldApparentDiameterOfEarthInYDirection, apparentDiameterOfEarthInYDirection));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getXCoordinateOfSubSatellitePoint() {
		return xCoordinateOfSubSatellitePoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setXCoordinateOfSubSatellitePoint(int newXCoordinateOfSubSatellitePoint) {
		int oldXCoordinateOfSubSatellitePoint = xCoordinateOfSubSatellitePoint;
		xCoordinateOfSubSatellitePoint = newXCoordinateOfSubSatellitePoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_SUB_SATELLITE_POINT, oldXCoordinateOfSubSatellitePoint, xCoordinateOfSubSatellitePoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getYCoordinateOfSubSatellitePoint() {
		return yCoordinateOfSubSatellitePoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setYCoordinateOfSubSatellitePoint(int newYCoordinateOfSubSatellitePoint) {
		int oldYCoordinateOfSubSatellitePoint = yCoordinateOfSubSatellitePoint;
		yCoordinateOfSubSatellitePoint = newYCoordinateOfSubSatellitePoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_SUB_SATELLITE_POINT, oldYCoordinateOfSubSatellitePoint, yCoordinateOfSubSatellitePoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScanningMode() {
		return scanningMode;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScanningMode(byte newScanningMode) {
		byte oldScanningMode = scanningMode;
		scanningMode = newScanningMode;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__SCANNING_MODE, oldScanningMode, scanningMode));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getOrientationOfTheGrid() {
		return orientationOfTheGrid;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setOrientationOfTheGrid(int newOrientationOfTheGrid) {
		int oldOrientationOfTheGrid = orientationOfTheGrid;
		orientationOfTheGrid = newOrientationOfTheGrid;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__ORIENTATION_OF_THE_GRID, oldOrientationOfTheGrid, orientationOfTheGrid));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getAltitudeOfTheCameraFromTheEarthCentre() {
		return altitudeOfTheCameraFromTheEarthCentre;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAltitudeOfTheCameraFromTheEarthCentre(int newAltitudeOfTheCameraFromTheEarthCentre) {
		int oldAltitudeOfTheCameraFromTheEarthCentre = altitudeOfTheCameraFromTheEarthCentre;
		altitudeOfTheCameraFromTheEarthCentre = newAltitudeOfTheCameraFromTheEarthCentre;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE, oldAltitudeOfTheCameraFromTheEarthCentre, altitudeOfTheCameraFromTheEarthCentre));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getXCoordinateOfOriginOfSectorImage() {
		return xCoordinateOfOriginOfSectorImage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setXCoordinateOfOriginOfSectorImage(int newXCoordinateOfOriginOfSectorImage) {
		int oldXCoordinateOfOriginOfSectorImage = xCoordinateOfOriginOfSectorImage;
		xCoordinateOfOriginOfSectorImage = newXCoordinateOfOriginOfSectorImage;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE, oldXCoordinateOfOriginOfSectorImage, xCoordinateOfOriginOfSectorImage));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getYCoordinateOfOriginOfSectorImage() {
		return yCoordinateOfOriginOfSectorImage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setYCoordinateOfOriginOfSectorImage(int newYCoordinateOfOriginOfSectorImage) {
		int oldYCoordinateOfOriginOfSectorImage = yCoordinateOfOriginOfSectorImage;
		yCoordinateOfOriginOfSectorImage = newYCoordinateOfOriginOfSectorImage;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE, oldYCoordinateOfOriginOfSectorImage, yCoordinateOfOriginOfSectorImage));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_XAXIS:
				return getNumberOfPointsAlongXAxis();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_YAXIS:
				return getNumberOfPointsAlongYAxis();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LATITUDE_OF_SUB_SATELLITE_POINT:
				return getLatitudeOfSubSatellitePoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LONGITUDE_OF_SUB_SATELLITE_POINT:
				return getLongitudeOfSubSatellitePoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__RESOLUTION_AND_COMPONENT_FLAGS:
				return getResolutionAndComponentFlags();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION:
				return getApparentDiameterOfEarthInXDirection();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION:
				return getApparentDiameterOfEarthInYDirection();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_SUB_SATELLITE_POINT:
				return getXCoordinateOfSubSatellitePoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_SUB_SATELLITE_POINT:
				return getYCoordinateOfSubSatellitePoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__SCANNING_MODE:
				return getScanningMode();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ORIENTATION_OF_THE_GRID:
				return getOrientationOfTheGrid();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE:
				return getAltitudeOfTheCameraFromTheEarthCentre();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				return getXCoordinateOfOriginOfSectorImage();
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				return getYCoordinateOfOriginOfSectorImage();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_XAXIS:
				setNumberOfPointsAlongXAxis((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_YAXIS:
				setNumberOfPointsAlongYAxis((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LATITUDE_OF_SUB_SATELLITE_POINT:
				setLatitudeOfSubSatellitePoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LONGITUDE_OF_SUB_SATELLITE_POINT:
				setLongitudeOfSubSatellitePoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__RESOLUTION_AND_COMPONENT_FLAGS:
				setResolutionAndComponentFlags((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION:
				setApparentDiameterOfEarthInXDirection((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION:
				setApparentDiameterOfEarthInYDirection((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_SUB_SATELLITE_POINT:
				setXCoordinateOfSubSatellitePoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_SUB_SATELLITE_POINT:
				setYCoordinateOfSubSatellitePoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__SCANNING_MODE:
				setScanningMode((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ORIENTATION_OF_THE_GRID:
				setOrientationOfTheGrid((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE:
				setAltitudeOfTheCameraFromTheEarthCentre((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				setXCoordinateOfOriginOfSectorImage((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				setYCoordinateOfOriginOfSectorImage((Integer)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_XAXIS:
				setNumberOfPointsAlongXAxis(NUMBER_OF_POINTS_ALONG_XAXIS_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_YAXIS:
				setNumberOfPointsAlongYAxis(NUMBER_OF_POINTS_ALONG_YAXIS_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LATITUDE_OF_SUB_SATELLITE_POINT:
				setLatitudeOfSubSatellitePoint(LATITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LONGITUDE_OF_SUB_SATELLITE_POINT:
				setLongitudeOfSubSatellitePoint(LONGITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__RESOLUTION_AND_COMPONENT_FLAGS:
				setResolutionAndComponentFlags(RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION:
				setApparentDiameterOfEarthInXDirection(APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION:
				setApparentDiameterOfEarthInYDirection(APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_SUB_SATELLITE_POINT:
				setXCoordinateOfSubSatellitePoint(XCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_SUB_SATELLITE_POINT:
				setYCoordinateOfSubSatellitePoint(YCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__SCANNING_MODE:
				setScanningMode(SCANNING_MODE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ORIENTATION_OF_THE_GRID:
				setOrientationOfTheGrid(ORIENTATION_OF_THE_GRID_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE:
				setAltitudeOfTheCameraFromTheEarthCentre(ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				setXCoordinateOfOriginOfSectorImage(XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				setYCoordinateOfOriginOfSectorImage(YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_XAXIS:
				return numberOfPointsAlongXAxis != NUMBER_OF_POINTS_ALONG_XAXIS_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__NUMBER_OF_POINTS_ALONG_YAXIS:
				return numberOfPointsAlongYAxis != NUMBER_OF_POINTS_ALONG_YAXIS_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LATITUDE_OF_SUB_SATELLITE_POINT:
				return latitudeOfSubSatellitePoint != LATITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__LONGITUDE_OF_SUB_SATELLITE_POINT:
				return longitudeOfSubSatellitePoint != LONGITUDE_OF_SUB_SATELLITE_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__RESOLUTION_AND_COMPONENT_FLAGS:
				return resolutionAndComponentFlags != RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION:
				return apparentDiameterOfEarthInXDirection != APPARENT_DIAMETER_OF_EARTH_IN_XDIRECTION_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION:
				return apparentDiameterOfEarthInYDirection != APPARENT_DIAMETER_OF_EARTH_IN_YDIRECTION_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_SUB_SATELLITE_POINT:
				return xCoordinateOfSubSatellitePoint != XCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_SUB_SATELLITE_POINT:
				return yCoordinateOfSubSatellitePoint != YCOORDINATE_OF_SUB_SATELLITE_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__SCANNING_MODE:
				return scanningMode != SCANNING_MODE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ORIENTATION_OF_THE_GRID:
				return orientationOfTheGrid != ORIENTATION_OF_THE_GRID_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE:
				return altitudeOfTheCameraFromTheEarthCentre != ALTITUDE_OF_THE_CAMERA_FROM_THE_EARTH_CENTRE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				return xCoordinateOfOriginOfSectorImage != XCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE390__YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE:
				return yCoordinateOfOriginOfSectorImage != YCOORDINATE_OF_ORIGIN_OF_SECTOR_IMAGE_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (numberOfPointsAlongXAxis: "); //$NON-NLS-1$
		result.append(numberOfPointsAlongXAxis);
		result.append(", numberOfPointsAlongYAxis: "); //$NON-NLS-1$
		result.append(numberOfPointsAlongYAxis);
		result.append(", latitudeOfSubSatellitePoint: "); //$NON-NLS-1$
		result.append(latitudeOfSubSatellitePoint);
		result.append(", longitudeOfSubSatellitePoint: "); //$NON-NLS-1$
		result.append(longitudeOfSubSatellitePoint);
		result.append(", resolutionAndComponentFlags: "); //$NON-NLS-1$
		result.append(resolutionAndComponentFlags);
		result.append(", apparentDiameterOfEarthInXDirection: "); //$NON-NLS-1$
		result.append(apparentDiameterOfEarthInXDirection);
		result.append(", apparentDiameterOfEarthInYDirection: "); //$NON-NLS-1$
		result.append(apparentDiameterOfEarthInYDirection);
		result.append(", xCoordinateOfSubSatellitePoint: "); //$NON-NLS-1$
		result.append(xCoordinateOfSubSatellitePoint);
		result.append(", yCoordinateOfSubSatellitePoint: "); //$NON-NLS-1$
		result.append(yCoordinateOfSubSatellitePoint);
		result.append(", scanningMode: "); //$NON-NLS-1$
		result.append(scanningMode);
		result.append(", orientationOfTheGrid: "); //$NON-NLS-1$
		result.append(orientationOfTheGrid);
		result.append(", altitudeOfTheCameraFromTheEarthCentre: "); //$NON-NLS-1$
		result.append(altitudeOfTheCameraFromTheEarthCentre);
		result.append(", xCoordinateOfOriginOfSectorImage: "); //$NON-NLS-1$
		result.append(xCoordinateOfOriginOfSectorImage);
		result.append(", yCoordinateOfOriginOfSectorImage: "); //$NON-NLS-1$
		result.append(yCoordinateOfOriginOfSectorImage);
		result.append(')');
		return result.toString();
	}

	/* (non-Javadoc)
	 * @see org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#initialise(java.nio.ByteBuffer)
	 */
	@Override
	public void initialise(ByteBuffer buffer) {
		super.initialise(buffer);
		numberOfPointsAlongXAxis = buffer.getInt();
		numberOfPointsAlongYAxis = buffer.getInt();
		latitudeOfSubSatellitePoint = buffer.getInt();
		longitudeOfSubSatellitePoint = buffer.getInt();
		resolutionAndComponentFlags = buffer.get();
		apparentDiameterOfEarthInXDirection = buffer.getInt();
		apparentDiameterOfEarthInYDirection = buffer.getInt();
		xCoordinateOfSubSatellitePoint = buffer.getInt();
		yCoordinateOfSubSatellitePoint = buffer.getInt();
		scanningMode = buffer.get();
		orientationOfTheGrid = buffer.getInt();
		altitudeOfTheCameraFromTheEarthCentre = buffer.getInt();
		xCoordinateOfOriginOfSectorImage = buffer.getInt();
		yCoordinateOfOriginOfSectorImage = buffer.getInt();
	}
	
} //GridDefinitionTemplate390Impl
